package com.push.xu.xpush.core;

import android.app.Application;
import android.content.Context;

public interface ZPushClient {

    /**
     * The Context object initialization time passed, the user message push registered to use
     */
    void initContext(Application application);

    /**
     * Registered push
     *
     */
    void register();


    /**
     * Cancel the registration of push
     *
     */
    void unRegister();
    
    /**
     * Clear Notification by id
     * @param context
     * @param id
     */
    void clearNotiById(Context context, int id);
    
    /**
     * Get Registration
     * @param context
     * @return
     */
    String getRegistration(Context context);

    /**
     * Binding alias
     *
     * @param alias alias
     */
    void bindAlias(String alias);


    /**
     * Binding alias
     *
     * @param alias Account
     */
    void unBindAlias(String alias);


    /**
     * Set up the tag
     *
     * @param tag   Tag
     */
    void addTag(String tag);


    /**
     * Delete up the tag
     *
     * @param tag   Tag
     */
    void deleteTag(String tag);

}
